# !/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
===========================
@Time : 2022/10/1 0001 14:37
@Author : 测试开发工程师
@File : 29. cypress 测试框架介绍.py
@Software: PyCharm
============================
"""

"""
cypress 简介
    官网连接： https://www.cypress.io/
    基于 JavaScript 的前端测试工具
    可以对浏览器中运行的任何内容进行快速，简单，可靠的测试
    对每一步操作都支持回看
    覆盖了测试金字塔模型的所有类型【界面测试，集成测试，单元测试】
    底层协议不采用 WebDriver

cypress（字节） 与 selenium 对比
                             cypress                         selenium
支持语言                    JavaScript              Java,Python,Javascript,Ruby,C#
支持浏览器                  Chrome.Electron                各种主流浏览器
主要使用者                  前端开发人员                         QA   
使用的测试框架                 Mocha(猫叉)                     无限制
是否需要浏览器驱动器            否                              需要
测试速度                        快                              略慢
录制测试视频，快照             支持                        支持，但需要代码
社区支持                      略显薄弱                           强大


                      
cypress 环境部署
    安装 node.js 官网地址： https://nodejs.org/zh-cn/
    安装 cypress
        初始化项目：npm init
        配置淘宝镜像 ： npm config set registry http://registry.npm.taobao.org
        安装 cypress: npm install cypress --save-dev
    打开 cypress
        npx cypress open

cypress 框架基本用法
    describe 声明一个测试用例集合
    beforEach 测试用例前置操作，相当于 setup
    it 声明一个测试用例
    cy.get 定位元素，用 css 定位
    type 输入文本
    click 点击操作
    should 断言
    
describe('搜素功能', ()=> {
    beforeEach(() =>{
        # 打开网页
        cy.visit('https://ceshiren.com/')
})
    it('搜素功能正向测试',()=>{
        # 点击输入框
        cy.get('#search-button').click()
        # 输入测试开发
        cy.get('#search-term').type('测试开发')
        # 点击 enter 键
        cy.get('#search-term').type('{enter}')
        # 断言结果
        cy.get('#ember646').should('contain','测试');
    })
})

"""
